perfect_prime=[
0x2 ,
0x3 ,
0x5 ,
0x7 ,
0xd ,
0x11 ,
0x13 ,
0x1f ,
0x3d ,
0x59 ,
0x6b ,
0x7f ,
0x209 ,
0x25f ,
0x4ff ,
0x89b ,
0x8e9 ,
0xc91 ,
0x109d ,
0x1147 ,
0x25d9 ,
0x26d5 ,
0x2bcd ,
0x4de1 ,
0x54c5 ,
0x5aa9 ,
0xadd1 ,
0x150e3 ,
0x1afa7 ,
0x203d1 ,
0x34c1b ,
0xb8c67 ,
0xd1d29 ,
0x13313b ,
0x1555fd ,
0x2d69dd ,
0x2e1a41 ,
0x6a64b1 ,
0xcd7d25 ,
0x1405fab ,
0x16ec4e7 ,
0x18c3197 ,
0x1cfe799 ,
 ]

colors = [('4pm'+ i).encode()
        for i in list('mjlg')
        ]
z1s ={
    's0':[23040,24576],

    'w10':[23232,23424],

    'w20':[23424,23808],

    'w30':[23808,24576],

    'm10':[23256,23280],

    'm20':[23280,23328],

    'm30':[23328,23424],

    'm40':[23472,23520],

    'm50':[23520,23616],

    'm60':[23616,23808],

    'm70':[23904,24000],

    'm80':[24000,24192],

    'm90':[24192,24576],
 }

from sympy.abc import x, y, z
mass1d = [240, 288, 192, 320, 384, 256, 360, 216,x]
mass1d_ret = [360,374400]

mass2d = [
        [240, 288, 192, 320, 384, 256, x, 216, 360],
        [240, 288, 192, 320, 384, 256, 360, x, 360]
        ]
mass2d_ret = [
        [276, 289728],
        [156, 331200],
        ]
#mass3d = [
#        [240, 288, 192, 320, 384, 256, y, z, x],
#        [240, 288, 192, 320, 384, 256, z, y, x]
#        ]
mass3d = [
[240, 288, 192, 320, 384, 256, 156, x, 360],
[240, 288, 192, 320, 384, 256, x, 156, 360],

[240, 288, 192, 320, 384, 256, 276, x, 360],
[240, 288, 192, 320, 384, 256, x, 276, 360],
]
mass3d_ret = [
        [207, 461556],
        [291, 274068],
        [177, 271476],
        [261, 386388]
        ]

zeta_keys=[ 
    23256 , 23259 , 23262 , 23264 , 23268 , 23272 , 23277 , 23280 , 23280 , 23286 , 23292 , 23296 , 23304 , 23312 , 23322 , 23328 ,
    23328 , 23340 , 23352 , 23360 , 23376 , 23392 , 23412 , 23424 , 23472 , 23478 , 23484 , 23488 , 23496 , 23504 , 23514 , 23520 ,
    23520 , 23532 , 23544 , 23552 , 23568 , 23584 , 23604 , 23616 , 23616 , 23640 , 23664 , 23680 , 23712 , 23744 , 23784 , 23808 ,
    23904 , 23916 , 23928 , 23936 , 23952 , 23968 , 23988 , 24000 , 24000 , 24024 , 24048 , 24064 , 24096 , 24128 , 24168 , 24192 ,
    24192 , 24240 , 24288 , 24320 , 24384 , 24448 , 24528 , 24576 , 23040 , 23232 , 23424 , 23552 , 23808 , 24064 , 24384 , 24576 ,
    23232 , 23256 , 23280 , 23296 , 23328 , 23360 , 23400 , 23424 , 23424 , 23472 , 23520 , 23552 , 23616 , 23680 , 23760 , 23808 ,
    23808 , 23904 , 24000 , 24064 , 24192 , 24320 , 24480 , 24576 ,
        ]
    
zeta_values=[ 
[(-11547, -76), (3534917, 23256)] ,
[(11477, 75), (3558629, 23259)] ,
[(-11991, -79), (3535841, 23262)] ,
[(-12153, -80), (3536135, 23264)] ,
[(-12447, -82), (3536753, 23268)] ,
[(-12757, -84), (3537355, 23272)] ,
[(10105, 66), (3561388, 23277)] ,
[(-13375, -88), (3538561, 23280)] ,
[(-13375, -88), (3538561, 23280)] ,
[(-13827, -91), (3539477, 23286)] ,
[(-14259, -94), (3540413, 23292)] ,
[(-14569, -96), (3541015, 23296)] ,
[(-15199, -100), (3542209, 23304)] ,
[(-15801, -104), (3543431, 23312)] ,
[(-16551, -109), (3544961, 23322)] ,
[(-17013, -112), (3545867, 23328)] ,
[(-17013, -112), (3545867, 23328)] ,
[(-17929, -118), (3547687, 23340)] ,
[(-18837, -124), (3549515, 23352)] ,
[(-19455, -128), (3550721, 23360)] ,
[(-20667, -136), (3553157, 23376)] ,
[(-21863, -144), (3555609, 23392)] ,
[(23431, 152), (3605471, 23412)] ,
[(22513, 146), (3607325, 23424)] ,
[(18793, 122), (3614693, 23472)] ,
[(18337, 119), (3615623, 23478)] ,
[(17875, 116), (3616547, 23484)] ,
[(17557, 114), (3617153, 23488)] ,
[(17023, 110), (3618467, 23496)] ,
[(16329, 106), (3619621, 23504)] ,
[(15573, 101), (3621175, 23514)] ,
[(15123, 98), (3622111, 23520)] ,
[(15123, 98), (3622111, 23520)] ,
[(14173, 92), (3623933, 23532)] ,
[(13245, 86), (3625777, 23544)] ,
[(12637, 82), (3627017, 23552)] ,
[(11397, 74), (3629473, 23568)] ,
[(10193, 66), (3631965, 23584)] ,
[(8635, 56), (3635027, 23604)] ,
[(7701, 50), (3636865, 23616)] ,
[(7701, 50), (3636865, 23616)] ,
[(5881, 38), (3640589, 23640)] ,
[(4005, 26), (3644257, 23664)] ,
[(2773, 18), (3646721, 23680)] ,
[(309, 2), (3651649, 23712)] ,
[(-2145, -14), (3656587, 23744)] ,
[(-5231, -34), (3662741, 23784)] ,
[(-7079, -46), (3666437, 23808)] ,
[(-14457, -94), (3681235, 23904)] ,
[(-15393, -100), (3683071, 23916)] ,
[(-16283, -106), (3684953, 23928)] ,
[(-16927, -110), (3686157, 23936)] ,
[(-18167, -118), (3688613, 23952)] ,
[(-19357, -126), (3691119, 23968)] ,
[(-20909, -136), (3694187, 23988)] ,
[(-21825, -142), (3696043, 24000)] ,
[(-21825, -142), (3696043, 24000)] ,
[(-23697, -154), (3699715, 24024)] ,
[(22471, 144), (3751495, 24048)] ,
[(21231, 136), (3753999, 24064)] ,
[(18733, 120), (3758989, 24096)] ,
[(16239, 104), (3763983, 24128)] ,
[(13117, 84), (3770221, 24168)] ,
[(11233, 72), (3773953, 24192)] ,
[(11233, 72), (3773953, 24192)] ,
[(7495, 48), (3781447, 24240)] ,
[(3749, 24), (3788933, 24288)] ,
[(1255, 8), (3793927, 24320)] ,
[(-3715, -24), (3803933, 24384)] ,
[(-8733, -56), (3813891, 24448)] ,
[(-14935, -96), (3826409, 24528)] ,
[(-18713, -120), (3833863, 24576)] ,
[(4875, 32), (3502091, 23040)] ,
[(-9699, -64), (3531293, 23232)] ,
[(22513, 146), (3607325, 23424)] ,
[(12637, 82), (3627017, 23552)] ,
[(-7079, -46), (3666437, 23808)] ,
[(21231, 136), (3753999, 24064)] ,
[(-3715, -24), (3803933, 24384)] ,
[(-18713, -120), (3833863, 24576)] ,
[(-9699, -64), (3531293, 23232)] ,
[(-11547, -76), (3534917, 23256)] ,
[(-13375, -88), (3538561, 23280)] ,
[(-14569, -96), (3541015, 23296)] ,
[(-17013, -112), (3545867, 23328)] ,
[(-19455, -128), (3550721, 23360)] ,
[(-22447, -148), (3556849, 23400)] ,
[(22513, 146), (3607325, 23424)] ,
[(22513, 146), (3607325, 23424)] ,
[(18793, 122), (3614693, 23472)] ,
[(15123, 98), (3622111, 23520)] ,
[(12637, 82), (3627017, 23552)] ,
[(7701, 50), (3636865, 23616)] ,
[(2773, 18), (3646721, 23680)] ,
[(-3369, -22), (3659059, 23760)] ,
[(-7079, -46), (3666437, 23808)] ,
[(-7079, -46), (3666437, 23808)] ,
[(-14457, -94), (3681235, 23904)] ,
[(-21825, -142), (3696043, 24000)] ,
[(21231, 136), (3753999, 24064)] ,
[(11233, 72), (3773953, 24192)] ,
[(1255, 8), (3793927, 24320)] ,
[(-11203, -72), (3818909, 24480)] ,
[(-18713, -120), (3833863, 24576)] ,
        ]
